package cn.tedu.sp03.user.service;

import cn.tedu.sp01.pojo.Item;
import cn.tedu.sp01.pojo.User;
import cn.tedu.sp01.service.UserService;
import cn.tedu.web.util.JsonUtil;
import com.fasterxml.jackson.core.type.TypeReference;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Service;

import java.util.List;

/**
 * @author 张琪
 * @date 2020/12/26
 * @describe 用户模块实现类
 */
@Service
@Slf4j
public class UserServiceImpl implements UserService {

    @Value("${sp.user-service.users}")
    private String userJson;

    @Override
    public User getUser(Integer userId) {
        log.info("user json string is " + userJson);
        // TypeReference 可以明确的指定反序列化的类型, 用在这里则指定 发序列化后的格式为 List<User>
        List<User> users = JsonUtil.from(userJson, new TypeReference<List<User>>(){});
        for (User user : users) {
            if (user.getId().equals(userId)) {
                return user;
            }
        }
        return new User(userId, "name-"+userId, "pwd-"+userId);
    }

    @Override
    public void addScore(Integer userId, Integer score) {
        log.info("user "+userId+" - 增加积分 "+score);
    }
}
